package com.hducms.cms.dao;

import java.util.List;
import java.util.Map;

import com.hducms.cms.entity.main.CmsUser;
import com.hducms.cms.entity.main.CmsUserExt;


/**
 * @author ZCH
 *
 */
public interface CmsUserDao {
	
	/**
	 * 通过ID找相应的用户
	 * @param id
	 * @return
	 */
	public CmsUser findById(Integer id);

	/**
	 * 通过用户名找到用户
	 * @param username
	 * @return
	 */
	public CmsUser findByUsername(String username);

	
	/**
	 * 获取单页结果
	 * @param map
	 * @return
	 */
	public List<CmsUser> getPage(Map<String, Object> map);
	
	/**
	 * 获取结果数量
	 * @param map
	 * @return
	 */
	public int countQueryResult(Map<String, Object> map);

	
    /**
     * 更新用户信息
     * @param record
     * @return
     */
    int update(CmsUser record);

    
    void save(CmsUser bean);
    
    	/**
	 * 添加用户栏目控制权限
	 * @param map
	 */
	public void insertUesrChanelPermission(Map<String, Object> map);
	
	/**
	 * 添加用户角色
	 * @param map
	 */
	public void insertUesrRole(Map<String, Object> map);
	
	/**
	 * 通过用户ID删除用户-角色关联表
	 * @param userId
	 */
	public void deleteUesrRoleByUserId(int userId);

	
	/**
	 * 保存用户审核级别和是否拥有所有栏目的权限
	 * @param map
	 */
	public void insertUesrSite(Map<String, Object> map);

	
	/**
	 * 删除用户栏目控制权限
	 */
	public void deleteUesrChanelPermissionByUserId(Integer id);

	
	/**
	 * 统计用户名的数量
	 * @param username
	 * @return
	 */
	public int countByUsername(String username);

	/**
	 * 检查Email是否存在
	 * @param email
	 * @return
	 */
	public int countByEmail(String email);

	public void deleteById(Integer id);


	/**
	 * 获取管理员列表
	 * @param map
	 * @return
	 */
	public List<CmsUser> getAdminList(Map<String, Object> map);

	public List<CmsUser> findByGroupId(Integer id);

	public void resetFaceById(Integer id);

	public void updatePushId(Map<String, Object> param);
	public void updateGetuiClientId(Map<String, Object> param);

	public void updatePatternLock(Map<String, Object> param);
	
}
